var runtime.trace

177 uses

	runtime (current package)
		mstats.go#L462: 		lock(&trace.lock)
		mstats.go#L500: 		unlock(&trace.lock)
		trace.go#L30: var trace struct {
		trace.go#L174: 	firstGen := traceNextGen(trace.lastNonZeroGen)
		trace.go#L177: 	trace.seqGC = 1
		trace.go#L180: 	trace.headerWritten = false
		trace.go#L181: 	trace.readerGen.Store(firstGen)
		trace.go#L182: 	trace.flushedGen.Store(0)
		trace.go#L232: 	trace.minPageHeapAddr = uint64(mheap_.pages.inUse.ranges[0].base.addr())
		trace.go#L253: 	trace.enabled = true
		trace.go#L256: 		trace.debugMalloc = debug.malloc
		trace.go#L257: 		trace.enabledWithAllocFree = true
		trace.go#L260: 	trace.gen.Store(firstGen)
		trace.go#L275: 	for trace.exitingSyscall.Load() != 0 {
		trace.go#L292: 	if trace.enabledWithAllocFree {
		trace.go#L336: 	gen := trace.gen.Load()
		trace.go#L424: 	trace.lastNonZeroGen = gen
		trace.go#L431: 			lock(&trace.lock)
		trace.go#L432: 			trace.shutdown.Store(true)
		trace.go#L433: 			trace.gen.Store(0)
		trace.go#L434: 			unlock(&trace.lock)
		trace.go#L438: 			trace.enabled = false
		trace.go#L441: 		trace.gen.Store(traceNextGen(gen))
		trace.go#L526: 				lock(&trace.lock)
		trace.go#L532: 				unlock(&trace.lock)
		trace.go#L588: 	trace.stackTab[gen%2].dump(gen)
		trace.go#L589: 	trace.typeTab[gen%2].dump(gen)
		trace.go#L590: 	trace.stringTab[gen%2].reset(gen)
		trace.go#L594: 		lock(&trace.lock)
		trace.go#L595: 		trace.flushedGen.Store(gen)
		trace.go#L596: 		unlock(&trace.lock)
		trace.go#L625: 		if trace.enabledWithAllocFree {
		trace.go#L626: 			trace.enabledWithAllocFree = false
		trace.go#L627: 			debug.malloc = trace.debugMalloc
		trace.go#L649: 	semacquire(&trace.doneSema[gen%2])
		trace.go#L651: 		raceacquire(unsafe.Pointer(&trace.doneSema[gen%2]))
		trace.go#L657: 		lock(&trace.lock)
		trace.go#L658: 		if !trace.full[gen%2].empty() {
		trace.go#L662: 			if !trace.full[1-(gen%2)].empty() {
		trace.go#L665: 			if trace.reading != nil || trace.reader.Load() != nil {
		trace.go#L669: 			for trace.empty != nil {
		trace.go#L670: 				buf := trace.empty
		trace.go#L671: 				trace.empty = buf.link
		trace.go#L675: 			trace.headerWritten = false
		trace.go#L676: 			trace.shutdown.Store(false)
		trace.go#L678: 		unlock(&trace.lock)
		trace.go#L734: 		trace.markWorkerLabels[gen%2][i] = traceArg(trace.stringTab[gen%2].put(gen, label))
		trace.go#L737: 		trace.goBlockReasons[gen%2][i] = traceArg(trace.stringTab[gen%2].put(gen, str))
		trace.go#L740: 		trace.goStopReasons[gen%2][i] = traceArg(trace.stringTab[gen%2].put(gen, str))
		trace.go#L758: 			if !trace.reader.CompareAndSwapNoWB(nil, gp) {
		trace.go#L802: 	lock(&trace.lock)
		trace.go#L804: 	if trace.reader.Load() != nil {
		trace.go#L808: 		unlock(&trace.lock)
		trace.go#L813: 	if buf := trace.reading; buf != nil {
		trace.go#L814: 		buf.link = trace.empty
		trace.go#L815: 		trace.empty = buf
		trace.go#L816: 		trace.reading = nil
		trace.go#L819: 	if !trace.headerWritten {
		trace.go#L820: 		trace.headerWritten = true
		trace.go#L821: 		unlock(&trace.lock)
		trace.go#L827: 	if trace.readerGen.Load() == 0 {
		trace.go#L828: 		trace.readerGen.Store(1)
		trace.go#L832: 		assertLockHeld(&trace.lock)
		trace.go#L833: 		gen = trace.readerGen.Load()
		trace.go#L837: 		if !trace.full[gen%2].empty() {
		trace.go#L845: 		if trace.flushedGen.Load() == gen {
		trace.go#L846: 			if trace.shutdown.Load() {
		trace.go#L847: 				unlock(&trace.lock)
		trace.go#L857: 					racerelease(unsafe.Pointer(&trace.doneSema[gen%2]))
		trace.go#L859: 				semrelease(&trace.doneSema[gen%2])
		trace.go#L868: 			trace.readerGen.Store(trace.gen.Load())
		trace.go#L869: 			unlock(&trace.lock)
		trace.go#L877: 				racerelease(unsafe.Pointer(&trace.doneSema[gen%2]))
		trace.go#L879: 			semrelease(&trace.doneSema[gen%2])
		trace.go#L882: 			lock(&trace.lock)
		trace.go#L894: 		trace.workAvailable.Store(false)
		trace.go#L895: 		unlock(&trace.lock)
		trace.go#L899: 	tbuf := trace.full[gen%2].pop()
		trace.go#L900: 	trace.reading = tbuf
		trace.go#L901: 	unlock(&trace.lock)
		trace.go#L913: 	if gp == nil || !trace.reader.CompareAndSwapNoWB(gp, nil) {
		trace.go#L937: 	if trace.flushedGen.Load() == trace.readerGen.Load() || trace.workAvailable.Load() || trace.shutdown.Load() {
		trace.go#L938: 		return trace.reader.Load()
		traceallocfree.go#L38: 	w.varint(uint64(trace.minPageHeapAddr))
		traceallocfree.go#L107: 	return traceArg(uint64(s.base())-trace.minPageHeapAddr) / pageSize
		traceallocfree.go#L131: 	return traceArg(uint64(addr)-trace.minPageHeapAddr) / minHeapAlign
		traceallocfree.go#L153: 	return traceArg(uint64(base)-trace.minPageHeapAddr) / fixedStack
		tracebuf.go#L70: 		lock(&trace.lock)
		tracebuf.go#L74: 		unlock(&trace.lock)
		tracebuf.go#L85: 		lock(&trace.lock)
		tracebuf.go#L89: 		if trace.empty != nil {
		tracebuf.go#L90: 			w.traceBuf = trace.empty
		tracebuf.go#L91: 			trace.empty = w.traceBuf.link
		tracebuf.go#L92: 			unlock(&trace.lock)
		tracebuf.go#L94: 			unlock(&trace.lock)
		tracebuf.go#L246: 	assertLockHeld(&trace.lock)
		tracebuf.go#L257: 	trace.full[gen%2].push(buf)
		tracebuf.go#L261: 	if !trace.workAvailable.Load() {
		tracebuf.go#L262: 		trace.workAvailable.Store(true)
		tracecpu.go#L18: 	trace.cpuLogRead[0] = newProfBuf(3, profBufWordCount, profBufTagCount)
		tracecpu.go#L19: 	trace.cpuLogRead[1] = newProfBuf(3, profBufWordCount, profBufTagCount)
		tracecpu.go#L27: 	trace.cpuLogWrite[0].Store(trace.cpuLogRead[0])
		tracecpu.go#L28: 	trace.cpuLogWrite[1].Store(trace.cpuLogRead[1])
		tracecpu.go#L40: 	trace.cpuSleep = newWakeableSleep()
		tracecpu.go#L54: 			trace.cpuSleep.sleep(100_000_000)
		tracecpu.go#L69: 	trace.cpuLogDone = done
		tracecpu.go#L87: 	trace.cpuLogWrite[0].Store(nil)
		tracecpu.go#L88: 	trace.cpuLogWrite[1].Store(nil)
		tracecpu.go#L89: 	trace.cpuLogRead[0].close()
		tracecpu.go#L90: 	trace.cpuLogRead[1].close()
		tracecpu.go#L91: 	trace.cpuSleep.wake()
		tracecpu.go#L94: 	<-trace.cpuLogDone
		tracecpu.go#L97: 	trace.cpuLogDone = nil
		tracecpu.go#L98: 	trace.cpuLogRead[0] = nil
		tracecpu.go#L99: 	trace.cpuLogRead[1] = nil
		tracecpu.go#L100: 	trace.cpuSleep.close()
		tracecpu.go#L119: 	data, tags, eof := trace.cpuLogRead[gen%2].read(profBufNonBlocking)
		tracecpu.go#L168: 		w := unsafeTraceWriter(gen, trace.cpuBuf[gen%2])
		tracecpu.go#L179: 		stackID := trace.stackTab[gen%2].put(pcBuf[:nstk])
		tracecpu.go#L189: 		trace.cpuBuf[gen%2] = w.traceBuf
		tracecpu.go#L198: 	if buf := trace.cpuBuf[gen%2]; buf != nil {
		tracecpu.go#L200: 			lock(&trace.lock)
		tracecpu.go#L202: 			unlock(&trace.lock)
		tracecpu.go#L203: 			trace.cpuBuf[gen%2] = nil
		tracecpu.go#L233: 	gen := trace.gen.Load()
		tracecpu.go#L262: 	for !trace.signalLock.CompareAndSwap(0, 1) {
		tracecpu.go#L267: 	if log := trace.cpuLogWrite[gen%2].Load(); log != nil {
		tracecpu.go#L274: 	trace.signalLock.Store(0)
		traceevent.go#L186: 	return traceArg(trace.stackTab[tl.gen%2].put([]uintptr{
		traceevent.go#L196: 	return traceArg(trace.stringTab[tl.gen%2].put(tl.gen, s))
		traceevent.go#L203: 	return traceArg(trace.stringTab[tl.gen%2].emit(tl.gen, s))
		traceevent.go#L208: 	return traceArg(trace.typeTab[tl.gen%2].put(typ))
		traceruntime.go#L56: 	lockInit(&trace.stringTab[0].lock, lockRankTraceStrings)
		traceruntime.go#L57: 	lockInit(&trace.stringTab[0].tab.mem.lock, lockRankTraceStrings)
		traceruntime.go#L58: 	lockInit(&trace.stringTab[1].lock, lockRankTraceStrings)
		traceruntime.go#L59: 	lockInit(&trace.stringTab[1].tab.mem.lock, lockRankTraceStrings)
		traceruntime.go#L60: 	lockInit(&trace.stackTab[0].tab.mem.lock, lockRankTraceStackTab)
		traceruntime.go#L61: 	lockInit(&trace.stackTab[1].tab.mem.lock, lockRankTraceStackTab)
		traceruntime.go#L62: 	lockInit(&trace.typeTab[0].tab.mem.lock, lockRankTraceTypeTab)
		traceruntime.go#L63: 	lockInit(&trace.typeTab[1].tab.mem.lock, lockRankTraceTypeTab)
		traceruntime.go#L64: 	lockInit(&trace.lock, lockRankTrace)
		traceruntime.go#L74: 	lockWithRankMayAcquire(&trace.lock, getLockRank(&trace.lock))
		traceruntime.go#L146: 	return trace.enabled
		traceruntime.go#L154: 	return trace.enabledWithAllocFree
		traceruntime.go#L159: 	return trace.shutdown.Load()
		traceruntime.go#L240: 	gen := trace.gen.Load()
		traceruntime.go#L296: 	trace.exitingSyscall.Add(1)
		traceruntime.go#L301: 	trace.exitingSyscall.Add(-1)
		traceruntime.go#L332: 	tl.eventWriter(traceGoRunning, traceProcRunning).commit(traceEvGCActive, traceArg(trace.seqGC))
		traceruntime.go#L335: 	trace.seqGC++
		traceruntime.go#L343: 	tl.eventWriter(traceGoRunning, traceProcRunning).commit(traceEvGCBegin, traceArg(trace.seqGC), tl.stack(3))
		traceruntime.go#L346: 	trace.seqGC++
		traceruntime.go#L354: 	tl.eventWriter(traceGoRunning, traceProcRunning).commit(traceEvGCEnd, traceArg(trace.seqGC))
		traceruntime.go#L357: 	trace.seqGC++
		traceruntime.go#L456: 		w = w.write(traceEvGoLabel, trace.markWorkerLabels[tl.gen%2][pp.ptr().gcMarkWorkerMode])
		traceruntime.go#L480: 	tl.eventWriter(traceGoRunning, traceProcRunning).commit(traceEvGoStop, traceArg(trace.goStopReasons[tl.gen%2][reason]), tl.stack(1))
		traceruntime.go#L488: 	tl.eventWriter(traceGoRunning, traceProcRunning).commit(traceEvGoBlock, traceArg(trace.goBlockReasons[tl.gen%2][reason]), tl.stack(skip))
		traceruntime.go#L724: 		lock(&trace.lock)
		traceruntime.go#L733: 		unlock(&trace.lock)
		tracestack.go#L126: 	id := trace.stackTab[gen%2].put(pcBuf[:nstk])
		tracestack.go#L235: 	frame.funcID = trace.stringTab[gen%2].put(gen, fn)
		tracestack.go#L241: 	frame.fileID = trace.stringTab[gen%2].put(gen, file)
		tracestring.go#L88: 			lock(&trace.lock)
		tracestring.go#L90: 			unlock(&trace.lock)
		tracetime.go#L90: 		lock(&trace.lock)
		tracetime.go#L92: 		unlock(&trace.lock)